/*--------------------------------------------------*/
/*VirtualSociety System ServiceModuleTemplate Class Header File*/
/*CreateBy SRPLab                */
/*CreateDate: 2011-3-17  */
/*--------------------------------------------------*/
#ifndef SRPSHTMLENVENGINE_CLASSHEADERFILE
#define SRPSHTMLENVENGINE_CLASSHEADERFILE

#define _INCLUDE_STARLIB
#include "SRPSHtmlEnvEngine_VSDHeader.h"

#if( VS_OS_TYPE == VS_OS_WINDOWS )
#pragma warning (disable:4819)
#pragma warning (disable:4244)
#pragma warning (disable:4996)
#pragma warning (disable:4800)
#endif

#pragma pack(4)

class ClassOfSHtmlEnvSiteClass:public ClassOfSRPObject{
public:
    ClassOfSHtmlEnvSiteClass();  //--Not Create a Class Object, Use WrapObject() to attach 
	virtual ~ClassOfSHtmlEnvSiteClass(){};
    ClassOfSHtmlEnvSiteClass(class ClassOfSRPInterface *In_SRPInterface);  //--Create a Class Object
    ClassOfSHtmlEnvSiteClass(class ClassOfSRPInterface *In_SRPInterface,void *SRPObject);  //--Create a Class Object and wrap SRPObject
    virtual VS_CHAR *SRPAPI GetSelfName();
    static class ClassOfSHtmlEnvSiteClass *SRPAPI GetSRPWrap( class ClassOfSRPInterface *In_SRPInterface,void *SRPObject,VS_ULONG In_ClassLayer = 0xFFFFFFFF);
public:
    //--Attribute Get/Put Function Define
    VS_VSTRING Get_RootUrl();
    void Put_RootUrl(VS_VSTRING In_Value);

    VS_BOOL Get_CaseSensitive();
    void Put_CaseSensitive(VS_BOOL In_Value);

    VS_INT32 Get_ActiveNumber();
    void Put_ActiveNumber(VS_INT32 In_Value);

    VS_INT32 Get_MaxUploadSize();
    void Put_MaxUploadSize(VS_INT32 In_Value);


#if( VS_OS_TYPE == VS_OS_WINDOW )
public:
    //--Attribute Property Define
    __declspec(property(get=Get_RootUrl, put=Put_RootUrl)) VS_VSTRING RootUrl;
    __declspec(property(get=Get_CaseSensitive, put=Put_CaseSensitive)) VS_BOOL CaseSensitive;
    __declspec(property(get=Get_ActiveNumber, put=Put_ActiveNumber)) VS_INT32 ActiveNumber;
    __declspec(property(get=Get_MaxUploadSize, put=Put_MaxUploadSize)) VS_INT32 MaxUploadSize;
#endif

public:
    //--Function Define
    void SRPAPI C_Mount(VS_CHAR * RootUrl,VS_CHAR * LocalPathOrFile,void *CallBackFunction);
    void SRPAPI C_UnMount(VS_CHAR * RootUrl,VS_CHAR * LocalPathOrFile);
    void SRPAPI C_MountObject(VS_CHAR * RootUrl,VS_OBJPTR EntityObject,void *CallBackFunction);
    void SRPAPI C_UnMountObject(VS_CHAR * RootUrl);
    VS_CHAR * SRPAPI C_GetParentUrl(VS_OBJPTR EntityObject);
    VS_BOOL SRPAPI C_GetChildBody(VS_OBJPTR ChildEntityObject,void *RetBody);
};

/*--------------------------------------------------*/

#pragma pack()

#endif
